package com.qidian.buy.goods.config.mq;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Author: 戴着假发的程序员
 * Date: 2024-05-15 10:33
 * company: 起点编程
 **/
//@Configuration
public class FanoutRabbitConfig {
    /**
     * 配置扇形交换机
     * @return
     */
    @Bean
    public FanoutExchange fanoutExchange() {
        /**
         * 参数1：交换机名称
         * 参数2：是否持久化
         * 参数3：是否自动删除
         */
        return new FanoutExchange("fanout-exchange",true,false);
    }
    // 两个队列
    @Bean
    public Queue itemQueue() {
        // item工程对应的队列
        return new Queue("item-queue",true);
    }
    @Bean
    public Queue searchQueue() {
        // search工程对应的队列
        return new Queue("search-queue",true);
    }

    // 将队列绑定到交换机，需要配置一个绑定队列的对象
    @Bean
    public Binding bindingItemQueue() {
        // 将itemQueue绑定到fanoutExchange交换机
        return BindingBuilder.bind(itemQueue()).to(fanoutExchange());
    }
    @Bean
    public Binding bindingSearchQueue() {
        // 将searchQueue绑定到fanoutExchange交换机
        return BindingBuilder.bind(searchQueue()).to(fanoutExchange());
    }
}
